1
靈活方法定義的藝術
AI035Lesson 4
00:00

Ruby 將方法定義從僵化的簽名提升至 動態介面。透過掌握 Splat 運算子與基於表達式的邏輯,我們能創造出能自然適應不同資料密度的方法,無需複雜的重載機制。

1. 智慧預設值與 Splat

Ruby 允許參數在簽名中初始化,即使資料量很少也能確保功能正常。 Splat 運算子 (*) 它就像一座橋樑:在參數中,將額外的引數收集到一個陣列中;在呼叫時,則將陣列「炸開」成單獨的槽位。

捕捉(參數)def f(a, *rest)f(1, 2, 3) →rest = [2, 3]爆炸(呼叫)arr = [1, 2, 3]meth(*arr) →meth(1, 2, 3)

2. 基於表達式的回傳

Ruby 方法會自動回傳 最後執行的表達式。然而, return 關鍵字會策略性地使用,以提早退出或將多個值以陣列形式回傳,供 平行賦值使用。

num, sq = meth_three
# Ruby 將 (num, sq) 打包成陣列 [32, 1024]
main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>